﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Demo.Wow.WorldServer.Entity.Common
{
    public enum FactionId : uint
    {
        None = 0,
        PlayerHuman = 1,
        PlayerOrc = 2,
        PlayerDwarf = 3,
        PlayerNightElf = 4,
        PlayerUndead = 5,
        PlayerTauren = 6,
        Creature = 7,
        Escortee = 40,
        Stormwind = 72,
        Monster = 14,
        DefiasBrotherhood = 15,
        Murloc = 19,
        GnollRedridge = 17,
        GnollRiverpaw = 16,
        UndeadScourge = 20,
        BeastSpider = 22,
        GnomereganExiles = 54,
        Worgen = 24,
        Kobold = 25,
        TrollBloodscalp = 26,
        Orgrimmar = 76,
        TrollSkullsplitter = 27,
        Prey = 28,
        BeastWolf = 29,
        Friendly = 31,
        Trogg = 32,
        TrollFrostmane = 33,
        GnollShadowhide = 18,
        OrcBlackrock = 34,
        Villian = 35,
        Victim = 36,
        BeastBear = 37,
        Ogre = 38,
        KurzenSMercenaries = 39,
        VentureCompany = 41,
        BeastRaptor = 42,
        Basilisk = 43,
        DragonflightGreen = 44,
        LostOnes = 45,
        GizlockSDummy = 769,
        HumanNightWatch = 49,
        DarkIronDwarves = 48,
        Ironforge = 47,
        DragonflightRed = 50,
        GnollMosshide = 51,
        OrcDragonmaw = 52,
        GnomeLeper = 53,
        Leopard = 55,
        ScarletCrusade = 56,
        Undercity = 68,
        Ratchet = 470,
        GnollRothide = 57,
        BeastGorilla = 58,
        BeastCarrionBird = 669,
        Naga = 60,
        Dalaran = 61,
        ForlornSpirit = 62,
        Darkhowl = 63,
        Darnassus = 69,
        Grell = 64,
        Furbolg = 65,
        HordeGeneric = 66,
        AllianceGeneric = 189,
        GizlockSCharm = 770,
        Syndicate = 70,
        HillsbradMilitia = 71,
        Demon = 73,
        Elemental = 74,
        Spirit = 75,
        Treasure = 77,
        GnollMudsnout = 78,
        HillsbradSouthshoreMayor = 79,
        DragonflightBlack = 80,
        ThunderBluff = 81,
        QuilboarRazormane2 = 110,
        QuilboarBristleback = 85,
        PlayerGnome = 8,
        PlayerTroll = 9,
        BloodsailBuccaneers = 87,
        BootyBay = 21,
        DarkspearTrolls = 530,
        Blackfathom = 88,
        Makrura = 89,
        CentaurKolkar = 90,
        CentaurGalak = 91,
        GelkisClanCentaur = 92,
        MagramClanCentaur = 93,
        Maraudine = 94,
        Theramore = 108,
        QuilboarRazorfen = 109,
        QuilboarDeathshead = 111,
        Enemy = 128,
        Ambient = 148,
        NethergardeCaravan = 168,
        SouthseaFreebooters = 573,
        WailingCaverns = 229,
        Silithid = 249,
        ArmiesOfCThun = 915,
        SilvermoonRemnant = 269,
        BeastBat = 310,
        TheDefilers = 510,
        Scorpid = 309,
        TimbermawHold = 576,
        Titan = 311,
        TaskmasterFizzule = 329,
        Ravenholdt = 349,
        Gadgetzan = 369,
        GnomereganBug = 389,
        Harpy = 409,
        BurningBlade = 429,
        ShadowsilkPoacher = 449,
        SearingSpider = 450,
        CenarionCircle = 609,
        TrollWitherbark = 82,
        HydraxianWaterlords = 749,
        GoblinDarkIronBarPatron = 489,
        BroodOfNozdormu = 910,
        MightOfKalimdor = 912,
        Giant = 511,
        ArgentDawn = 529,
        TrollVilebranch = 572,
        Everlook = 577,
        WintersaberTrainers = 589,
        TrainingDummy = 679,
        FurbolgUncorrupted = 575,
        ShatterspearTrolls = 629,
        BeastBoar = 23,
        DragonflightBlackBait = 689,
        BattlegroundNeutral = 709,
        FrostwolfClan = 729,
        StormpikeGuard = 730,
        SulfuronFirelords = 750,
        Gizlock = 771,
        ShenDralar = 809,
        OgreCaptainKromcrush = 829,
        SilithidAttackers = 916,
        SpiritGuideAlliance = 790,
        SpiritGuideHorde = 849,
        Jaedenar = 869,
        ThoriumBrotherhood = 59,
        SilverwingSentinels = 890,
        WarsongOutriders = 889,
        DarkmoonFaire = 909,
        ZandalarTribe = 270,
        TheLeagueOfArathor = 509,
        SilvermoonCity = 911,
        DragonflightBronze = 531,
        PlayerBloodElf = 914,
        SteamwheedleCartel = 169,
        RcObjects = 919,
        RcEnemies = 918,
        Blue = 921,
        Red = 920,
        Tranquillien = 922,
        Farstriders = 923,
        PlayerDraenei = 927,
        ScourgeInvaders = 928,
        Exodar = 930,
        TrollForest = 937,
        TheSonsOfLothar = 940,
        TheMagHar = 941,
        CenarionExpedition = 942,
        FelOrc = 943,
        FelOrcGhost = 944,
        SonsOfLotharGhosts = 945,
        HonorHold = 946,
        Thrallmar = 947,
        TestFaction1 = 949,
        TowowFlag = 950,
        TestFaction4 = 953,
        TestFaction3 = 952,
        TowowFlagTriggerHordeDnd = 954,
        TowowFlagTriggerAllianceDnd = 951,
        Ethereum = 956,
        Broken = 955,
        EarthElemental = 957,
        FightingRobots = 958,
        ActorGood = 959,
        ActorEvil = 960,
        StillpineFurbolg = 961,
        CrazedOwlkin = 962,
        ChessAlliance = 963,
        ChessHorde = 964,
        MonsterSpar = 965,
        MonsterSparBuddy = 966,
        TheVioletEye = 967,
        Sunhawks = 968,
        FungalGiant = 971,
        Sporeggar = 970,
        MonsterPredator = 973,
        MonsterPrey = 974,
        VoidAnomaly = 975,
        HyjalDefenders = 976,
        HyjalInvaders = 977,
        Kurenai = 978,
        EarthenRing = 979,
        TheConsortium = 933,
        Arakkoa = 981,
        ZangarmarshBannerAlliance = 982,
        ZangarmarshBannerHorde = 983,
        TheShaTar = 935,
        ZangarmarshBannerNeutral = 984,
        TheAldor = 932,
        TheScryers = 934,
        CavernsOfTimeThrall = 985,
        CavernsOfTimeDurnholde = 986,
        CavernsOfTimeSouthshoreGuards = 987,
        ShadowCouncilCovert = 988,
        DarkPortalAttackerLegion = 993,
        DarkPortalDefenderAlliance = 991,
        DarkPortalDefenderHorde = 992,
        InciterTrigger = 994,
        InciterTrigger2 = 995,
        InciterTrigger3 = 996,
        InciterTrigger4 = 997,
        InciterTrigger5 = 998,
        ManaCreature = 999,
        KhadgarSServant = 1000,
        TheScaleOfTheSands = 990,
        KeepersOfTime = 989,
        BladespireClan = 1001,
        BloodmaulClan = 929,
        Protectorate = 1003,
        ArcaneAnnihilatorDnr = 1004,
        EthereumSparbuddy = 1002,
        Horde = 67,
        Alliance = 469,
        KirinVarBelmara = 1007,
        KirinVarCohlien = 1009,
        KirinVarDathric = 1006,
        KirinVarLuminrath = 1008,
        ServantOfIllidan = 1010,
        LowerCity = 1011,
        AshtongueDeathsworn = 1012,
        SpiritsOfShadowmoon1 = 1013,
        SpiritsOfShadowmoon2 = 1014,
        Netherwing = 1015,
        Wyrmcult = 1016,
        Treant = 1017,
        LeotherasDemonI = 1018,
        LeotherasDemonIi = 1019,
        LeotherasDemonIii = 1020,
        LeotherasDemonIv = 1021,
        LeotherasDemonV = 1022,
        Azaloth = 1023,
        RockFlayer = 1024,
        FlayerHunter = 1025,
        ShadowmoonShade = 1026,
        LegionCommunicator = 1027,
        RavenswoodAncients = 1028,
        ChessFriendlyToAllChess = 1029,
        ShaTariSkyguard = 1031,
        Maiev = 1033,
        SkettisShadowyArakkoa = 1034,
        SkettisArakkoa = 1035,
        DragonmawEnemy = 1036,
        OgriLa = 1038,
        Frenzy = 1041,
        SkyguardEnemy = 1042,
        TheramoreDeserter = 1044,
        TrollAmani = 1049,
        CtfFlags = 1059,
        RamRacingPowerupDnd = 1069,
        RamRacingTrapDnd = 1070,
        CraigSSquirrels = 1071,
        HolidayWaterBarrel = 1074,
        FightingVanityPet = 1078
    }

    public enum FactionRepListId : int
    {
        Invalid = -1,			// Cannot lose or gain reputation with replistid = -1
        Stormwind = 19,
        GnomereganExiles = 18,
        Orgrimmar = 14,
        Ironforge = 20,
        Undercity = 17,
        Ratchet = 9,
        Darnassus = 21,
        Syndicate = 6,
        ThunderBluff = 16,
        BloodsailBuccaneers = 0,
        BootyBay = 1,
        DarkspearTrolls = 15,
        GelkisClanCentaur = 2,
        MagramClanCentaur = 3,
        TheDefilers = 52,
        TimbermawHold = 35,
        Ravenholdt = 5,
        Gadgetzan = 7,
        CenarionCircle = 36,
        HydraxianWaterlords = 42,
        BroodOfNozdormu = 54,
        ArgentDawn = 13,
        Everlook = 28,
        WintersaberTrainers = 27,
        FrostwolfClan = 41,
        StormpikeGuard = 40,
        ShenDralar = 44,
        ThoriumBrotherhood = 4,
        SilverwingSentinels = 45,
        WarsongOutriders = 46,
        DarkmoonFaire = 50,
        ZandalarTribe = 51,
        TheLeagueOfArathor = 53,
        SilvermoonCity = 55,
        SteamwheedleCartel = 10,
        Tranquillien = 56,
        Exodar = 49,
        TheMagHar = 61,
        CenarionExpedition = 64,
        HonorHold = 38,
        Thrallmar = 37,
        TheVioletEye = 63,
        Sporeggar = 65,
        Kurenai = 66,
        TheConsortium = 60,
        TheShaTar = 39,
        TheAldor = 58,
        TheScryers = 62,
        TheScaleOfTheSands = 57,
        KeepersOfTime = 67,
        Horde = 12,
        Alliance = 11,
        LowerCity = 69,
        AshtongueDeathsworn = 70,
        Netherwing = 71,
        ShaTariSkyguard = 72,
        OgriLa = 73
    }


    public enum FactionArea
    {
        Alliance = 2,
        Horde = 4,
        Sanctuary = 6
    }

    /// <summary>
    /// FactionGroup
    /// </summary>
    public enum FactionGroup
    {
        Alliance = 1,
        Horde = 2,
        Invalid = 3
    }

    public class Faction
    {
    }
}
